﻿#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//C语言规定，二维数组的“行”是从0开始的，“列”也是从0开始的
//使用下标的形式来访问二维数组，，只要锁定了⾏和列就能唯⼀锁定数组中的⼀个元素
int main()
{
	int arr[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};
	printf("%d\n", arr[2][4]);
	return 0;
}


//访问整个二维数组
int main()
{
	int arr[3][5] = { 1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7 };
	int i = 0;//遍历行
	//输入
	for (i = 0; i < 3; i++)//产生行号
	{
		int j = 0;
		for (j = 0; j < 5; j++)//产生列号
		{
			scanf("%d", &arr[i][j]);//输入数据
		}
	}
	//输出
	for (i = 0; i < 3; i++)//产生行号
	{
		int j = 0;
		for (j = 0; j < 5; j++)//产生列号
		{
			printf("%d", arr[i][j]);//输出数据
		}
		printf("\n");
	}
	return 0;
}


//研究二维数组在内存中的存储方式，打印数组所有元素的地址
int main()
{
	int arr[3][5] = {0};
	int i = 0;
	int j = 0;
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 5; j++)
		{
			printf("&arr[%d][%d] = %p\n", i, j, &arr[i][j]);
		}
	}
	return 0;
}


//C99中的变长数组，要把平台工具集调成clang (数组那期课程时间（39 ：24）)
int main()
{
	int n = 0;
	scanf("%d", &n);//根据输入数值确定数组的大小
	int arr[n];
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	for (i = 0; i < n; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}